var express = require('express');
var router = express.Router();
let path = require("path");
let fs = require("fs");
let captcha = require("svg-captcha");

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});
router.get("/login",(req,res)=>{
  // res.sendFile( path.resolve("./views/login.html"))
  res.render("login.ejs")
})
router.get("/register",(req,res)=>{
  // res.sendFile( path.resolve("./views/register.html"))
  res.render("register.ejs");
})
// 响应登录表单请求
router.post("/dologin",(req,res,next)=>{
  let {tel,pass} = req.body;
  let data = fs.readFileSync("./persons.json");
  let arr = JSON.parse( data.toString());
  let a = arr.findIndex((item)=>{
    return item.username==tel && item.password==pass;
  })
  if(a!=-1){
    res.send("<h2>登录成功</h2>")
  }else{
    res.send("<h2>账号密码不对</h2>")
    // next("<h2>账号密码不对</h2>")
  }
})
// 响应注册表单请求
router.post("/doregister",(req,res,next)=>{
  let {tel,pass,code} = req.body;
  if( code.toLowerCase() != (req.session["yzm"]).toLowerCase() ){
    // res.send("验证码不正确，请重填");
    next("验证码不正确，请重填");
    return;
  }
/*   let username = req.body.tel;
  let password = req.body.pass; */
  let data = fs.readFileSync("./persons.json");
  let arr = JSON.parse( data.toString());
  let a = arr.findIndex((item)=>{
    return item.username==tel;
  })
  if(a!=-1){
    // res.send("<h2>该账号已注册</h2>")
    next("该账号已注册");
  }else{
    // 继续注册
    let obj = {"username":tel,"password":pass,"time":req.time};
    arr.push( obj );
    fs.writeFileSync("./persons.json", JSON.stringify( arr));
    res.send("<h2>注册成功</h2>")
  }  
})

router.get("/yzm",(req,res)=>{
  let options = {
    size:4,// 验证码长度
    width:200, //验证码图片宽度
    height:80, //验证码图片的高度
    background:"#fff", //验证码图片的背景颜色
    noise:4, //验证码图片中的干扰线
    fontSize:70, //验证码图片中文字大小
    color:true, //验证码图片中文字颜色
    ignoreChars:"i1o0" //容易混淆的字符不要出现在验证码中
  };
  // 生成svg格式的图片
  let svg = captcha.create( options );
  console.log( svg );
  req.session["yzm"] = svg.text;
  // svg对象中的text属性为生成的验证码字符串，data属性为验证码字符串转换的svg图形。
  res.type("svg");
  res.send( svg.data );
})

// 显示所有注册信息
router.get("/list",(req,res)=>{
  let data= fs.readFileSync("./persons.json");
  let arr = JSON.parse( data.toString());
  res.render("list.ejs",{"result":arr});
})

module.exports = router;
